package com.xuelang.pipeline.artifact.domain.resource.service;

import com.xuelang.pipeline.artifact.client.common.result.PageRecord;
import com.xuelang.pipeline.artifact.client.resource.dto.ArtifactAttributeQuery;
import com.xuelang.pipeline.artifact.domain.resource.ArtifactAttribute;

import java.util.List;

/**
 * 制品仓库属性领域服务类
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
public interface ArtifactAttributeDomainService {
    /**
     * 获取制品仓库属性列表，有过滤条件
     *
     * @param currentPage
     * @param pageSize
     * @param artifactAttributeQuery
     * @return
     */
    PageRecord<ArtifactAttribute> pageList(long currentPage, long pageSize, ArtifactAttributeQuery artifactAttributeQuery);
    /**
     * 获取制品仓库属性列表，有过滤条件
     *
     * @param artifactAttributeQuery
     * @return
     */
    List<ArtifactAttribute> list(ArtifactAttributeQuery artifactAttributeQuery);

    /**
     * 新增制品仓库属性
     *
     * @param artifactAttribute
     * @return
     */
    Boolean save(ArtifactAttribute artifactAttribute);

    /**
     * 更新制品仓库属性
     *
     * @param artifactAttribute
     * @return
     */
    Boolean update(ArtifactAttribute artifactAttribute);
    /**
     * 删除制品仓库属性
     *
     * @param artifactAttributeUuid
     * @return
     */
    Boolean delete(String artifactAttributeUuid);
    /**
     * 查询制品仓库属性
     *
     * @param artifactAttributeUuid
     * @return
     */
    ArtifactAttribute query(String artifactAttributeUuid);

    /**
     * 更新webhook信息
     *
     * @param artifactUuid
     * @param webhookType
     * @param webhookId
     */
    void updateWebhookInfo(String artifactUuid, String webhookType, String webhookId);

    /**
     * 更新webhook信息为空
     *
     * @param artifactUuid
     */
    void updateWebhookInfoToNull(String artifactUuid);
}
